package one;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class A014 {

    public static void main(String[] args) {
        int[][] a = {{2,6},{1,3},{8,10},{15,18}};
        //merge(a);
    }

    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals,(a,b)->{
            return a[0]-b[0];
        });
        List<int[]> list = new ArrayList<>();
        int left=intervals[0][0],right=intervals[0][1]; //拿到第一个数组的左右值
        int i=1;
        for(;i<intervals.length;i++)  { //依次遍历后面的每一个数组
            int a=intervals[i][0],b=intervals[i][1];
            if(right>=a) {
                //可以合并
                right=Math.max(right,b);
            }else {
                //不能合并
                list.add(new int[]{left,Math.max(right,intervals[i-1][1])});

                left=intervals[i][0];
                right=intervals[i][1];
            }
        }
        list.add(new int[]{left,Math.max(right,intervals[i-1][1])});
        return list.toArray(new int[0][]);
    }

}
